Ársreikningar Sveitarfélaga

Gögn

Code
efnahagur <- read_excel("net-efnahagsreikningur.xlsx", skip = 4) |> 
    clean_names() |> 
    fill(ar, sveitarfelag, hluti, tegund3) |> 
    drop_na(tegund2) |> 
    mutate(ar = parse_number(ar),
           sveitarfelag = str_sub(sveitarfelag, start = 6))
Code
rekstur <- read_excel("net-rekstrarreikningur.xlsx", skip = 4) |> 
    clean_names() |> 
    fill(ar, sveitarfelag, hluti) |> 
    filter(tegund2 %in% c("Gjöld Total", "Tekjur Total") | tegund == "Afskriftir") |> 
    mutate(tegund2 = ifelse(is.na(tegund2), tegund, tegund2) |> str_replace(" Total", "")) |> 
    select(-tegund) |> 
    mutate(ar = parse_number(ar),
           sveitarfelag = str_sub(sveitarfelag, start = 6))
Code
sjodsstreymi <- read_excel("net-sjodsstreymi.xlsx", skip = 4) |> 
    clean_names() |> 
    fill(ar, sveitarfelag, hluti, tegund2) |> 
    mutate(ar = parse_number(ar),
           sveitarfelag = str_sub(sveitarfelag, start = 6))
Code
mannfjoldi <- pxweb_get(
    url ="https://px.hagstofa.is:443/pxis/api/v1/is/Ibuar/mannfjoldi/2_byggdir/sveitarfelog/MAN02005.px", 
    query = list(
        "Sveitarfélag" = c("*"),
        "Aldur" = c("-1"),
        "Ár" = c("*"),
        "Kyn" = c("0")
    ),
    verbose = FALSE
) |> 
    as.data.frame() |> 
    as_tibble() |> 
    janitor::clean_names() |> 
    rename(mannfjoldi = mannfjoldi_eftir_sveitarfelagi_kyni_og_aldri_1_januar_1998_2022) |> 
    mutate(ar = parse_number(ar)) |> 
    filter(sveitarfelag != "Alls") |> 
    select(sveitarfelag, ar, mannfjoldi) |> 
    mutate(sveitarfelag = fct_recode(sveitarfelag,
                                     "Akureyrarkaupstaður" = "Akureyrarbær"))
Code
reykjavik_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Reykjavíkurborg",
    heildarskuldir = 144585281,
    eignir = 236480058,
    tekjur = 142266419,
    gjold = 138232694 + 6528867 + 1354457,
    afskriftir = 6528867 + 1354457,
    eigid_fe = 91894777,
    veltufjarmunir = 36501660,
    skammtimaskuldir = 25110092,
    veltufe = 368691
)

gardabaer_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Garðabær",
    heildarskuldir = 21879430,
    eignir = 38518069,
    tekjur = 19134280,
    gjold = 17319198 + 999523 + 875488,
    afskriftir = 999523 + 875488,
    eigid_fe = 16638638,
    veltufjarmunir = 3775414,
    skammtimaskuldir = 25110092,
    veltufe = 2468632
)

kopavogur_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Kópavogsbær",
    heildarskuldir = 42854489,
    eignir = 63179897,
    tekjur = 38124393,
    gjold =  35123789 + 1423093 + 1553624,
    afskriftir = 1423093 + 1553624,
    eigid_fe = 20325407,
    veltufjarmunir = 6107301,
    skammtimaskuldir = 9487502,
    veltufe = 1541688
)

hafnarfjordur_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Hafnarfjarðarkaupstaður",
    heildarskuldir = 46306203,
    eignir = 55056370,
    tekjur = 31226347,
    gjold =  30355042 + 853169 + 1497709,
    afskriftir = 853169 + 1497709,
    eigid_fe = 8750167,
    veltufjarmunir = 5238734,
    skammtimaskuldir = 8526054,
    veltufe = -14232
)

mosfellsbaer_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Mosfellsbær",
    heildarskuldir = 18124135,
    eignir = 23362212,
    tekjur = 13543767,
    gjold =  12872486 + 439988 + 849569,
    afskriftir = 439988 + 849569,
    eigid_fe = 5238077,
    veltufjarmunir = 2430037,
    skammtimaskuldir = 3160837,
    veltufe = 937615
)
Code
d <- efnahagur |> 
    filter(hluti == "A_hluti") |> 
    select(-tegund3, -hluti) |> 
    pivot_wider(names_from = tegund2, values_from = total) |> 
    inner_join(
        rekstur |> 
            filter(hluti == "A_hluti") |> 
            select(-hluti) |> 
            pivot_wider(names_from = tegund2, values_from = total),
        by = c("ar", "sveitarfelag")
    ) |> 
    inner_join(
        sjodsstreymi |> 
            filter(hluti == "A_hluti") |> 
            select(-hluti) |> 
            pivot_wider(names_from = tegund2, values_from = total),
        by = c("ar", "sveitarfelag")
    ) |> 
    rowwise() |> 
    mutate(heildarskuldir = sum(c_across(cols = c("Skuldbindingar", "Langtímaskuldir", "Skammtímaskuldir"))),
           eignir = sum(c_across(cols = c("Varanlegir rekstrarfjármunir", "Áhættufjármunir og langtímakröfur", "Veltufjármunir")))) |> 
    ungroup() |> 
    select(ar, sveitarfelag, heildarskuldir, eignir, tekjur = "Tekjur", gjold = "Gjöld", afskriftir = "Afskriftir",
           eigid_fe = "Eigið fé", veltufjarmunir = "Veltufjármunir", skammtimaskuldir = "Skammtímaskuldir", veltufe = "Veltufé frá rekstri") |> 
    bind_rows(
        reykjavik_2021,
        gardabaer_2021,
        kopavogur_2021,
        hafnarfjordur_2021,
        mosfellsbaer_2021
    ) |> 
    mutate_at(vars(heildarskuldir:veltufe), ~ .x * 1000) |> 
    mutate(nettoskuldir = heildarskuldir - veltufjarmunir,
           skuldahlutf = heildarskuldir / tekjur,
           nettoskuldahlutf = nettoskuldir / tekjur,
           veltufjarhlutf = veltufjarmunir / skammtimaskuldir,
           eignahlutf = eignir / heildarskuldir,
           rekstrarnidurstada = tekjur - gjold,
           rekstrarnidurstada_hlutf = rekstrarnidurstada / tekjur,
           ebitda = rekstrarnidurstada + afskriftir,
           ebitda_hlutf = ebitda / tekjur,
           eiginfjarhlutfall = eigid_fe / eignir) |> 
    inner_join(mannfjoldi,
               by = c("ar", "sveitarfelag"))

d |> write_csv("arsreikningagogn_ahluti.csv")
Code
plot_year <- 2014

Myndir

A hluti

Skuldir

Skuldir sem hlutfall af árstekjum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldahlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0,
                         sveitarfelag == "Kópavogsbær" ~ y - 0.015,
                         sveitarfelag == "Garðabær" ~ y + 0.015,
                         sveitarfelag == "Reykjavíkurborg" ~ y + 0.015,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, skuldahlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.3)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldahlutf), 0.75, 1, 1.25, 1.5, 2), 
                       labels = label_percent(accuract = 1)) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Skuldir sveitafélaga sem hlutfall af árstekjum (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldir_hlutfall_arstekjum.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Skuldir á íbúa

Code
plot_dat <- d |> 
    mutate(hlutf = heildarskuldir / mannfjoldi) |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 1e4,
                         sveitarfelag == "Kópavogsbær" ~ y + 5e3,
                         sveitarfelag == "Garðabær" ~ y - 3e4,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 2e4,
                         sveitarfelag == "Reykjavíkurborg" ~ y - 3.5e4,
                         sveitarfelag == "Seltjarnarnesbær" ~ y + 3.5e4,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, hlutf, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_log10(breaks = c(range(plot_dat$hlutf), 3e5, 5e5, 1e6), 
                       labels = label_number(accuracy = 1, suffix = " kr.")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Skuldir sveitafélaga á hvern íbúa (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldir_a_ibua.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Heildarskuldir

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = heildarskuldir,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y ,
                         sveitarfelag == "Kópavogsbær" ~ y - 2e9,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 3e9,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, heildarskuldir, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_log10(breaks = c(range(plot_dat$heildarskuldir), 1e10, 3e10, 1e11, 3e11), 
                       labels = label_number(accuracy = 1, suffix = " kr.")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Heildarskuldir sveitarfélaga (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")


p

Code
ggsave(plot = p,
       filename = "heildarskuldir.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Aukning skulda

Frá 2018

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_),
           skuldaaukning = heildarskuldir / heildarskuldir[ar == 2018]) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldaaukning,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y ,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= 2018)

p <- plot_dat |> 
    ggplot(aes(ar, skuldaaukning, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.02, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = 2018:2021, 
                       limits = c(NA, 2021.55)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldaaukning), 1.25, 1.5), 
                       labels = label_number(suffix = "x")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfallsleg aukning heildarskulda sveitarfélaga síðan 2018 (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldaaukning.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Frá 2010

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_),
           skuldaaukning = heildarskuldir / heildarskuldir[ar == 2010]) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldaaukning,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y ,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= 2010)

p <- plot_dat |> 
    ggplot(aes(ar, skuldaaukning, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = 2010:2021, 
                       limits = c(NA, 2023)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldaaukning), 1, 1.25, 1.5, 2, 2.5, 3), 
                       labels = label_number(suffix = "x")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfallsleg aukning heildarskulda sveitarfélaga síðan 2010 (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldaaukning_2010.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Nettó skuldir

Nettó skuldir sem hlutfall af árstekjum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = nettoskuldahlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0,
                         sveitarfelag == "Kópavogsbær" ~ y + 0.015,
                         sveitarfelag == "Garðabær" ~ y - 0.035,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, nettoskuldahlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.5)) +
    scale_y_continuous(breaks = c(range(plot_dat$nettoskuldahlutf), 0.75, 1, 1.25, 1.5, 2, 2.5), 
                       labels = label_percent(accuract = 1)) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Nettóskuldir sveitafélaga sem hlutfall af árstekjum (A-hluti)",
         subtitle = "Nettóskuldir eru heildarskuldir að frádregnum peningalegum eignum án eigin fyrirtækja",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "nettoskuldir_hlutfall_arstekjum.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Nettó skuldir á íbúa

Code
plot_dat <- d |> 
    mutate(hlutf = nettoskuldir / mannfjoldi) |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 1e4,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         sveitarfelag == "Seltjarnarnesbær" ~ y + 3.5e4,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, hlutf, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.05, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$hlutf), 3e5, 5e5, 1e6, 2e6), 
                       labels = label_number(accuracy = 1, suffix = " kr.")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Nettóskuldir sveitafélaga á hvern íbúa (A-hluti)",
         subtitle = "Nettóskuldir eru heildarskuldir að frádregnum peningalegum eignum án eigin fyrirtækja",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "nettoskuldir_a_ibua.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Aukning nettóskulda

Frá 2018
Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_),
           skuldaaukning = nettoskuldir / nettoskuldir[ar == 2018]) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldaaukning,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0.01,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y - 0.01,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= 2018)

p <- plot_dat |> 
    ggplot(aes(ar, skuldaaukning, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2, alpha = 0.7) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.02, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = 2018:2021, 
                       limits = c(NA, 2021.55)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldaaukning), 1.25, 1.5, 2), 
                       labels = label_number(suffix = "x")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfallsleg aukning nettóskulda sveitarfélaga síðan 2018 (A-hluti)",
         subtitle = "Nettóskuldir eru heildarskuldir að frádregnum peningalegum eignum án eigin fyrirtækja",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "nettoskuldaaukning.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")
Frá 2010
Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_),
           skuldaaukning = nettoskuldir / nettoskuldir[ar == 2010]) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldaaukning,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y ,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y - 0.09,
                         sveitarfelag == "Reykjavíkurborg" ~ y + 0.09,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 0.25,
                         TRUE ~ y)) |> 
    filter(ar >= 2010)

p <- plot_dat |> 
    ggplot(aes(ar, skuldaaukning, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2, alpha = 0.7) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = 2010:2021, 
                       limits = c(NA, 2023.2)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldaaukning), 1, 1.5, 3), 
                       labels = label_number(suffix = "x")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfallsleg aukning nettóskulda sveitarfélaga síðan 2010 (A-hluti)",
         subtitle = "Nettóskuldir eru heildarskuldir að frádregnum peningalegum eignum án eigin fyrirtækja",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "nettoskuldaaukning_2010.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Eiginfjárhlutfall

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = eiginfjarhlutfall,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y + 0.005,
                         sveitarfelag == "Reykjavíkurborg" ~ y ,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, eiginfjarhlutfall, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.3)) +
    scale_y_continuous(breaks = c(range(plot_dat$eiginfjarhlutfall), 0.2, 0.3, 0.4, 0.5, 0.6, 0.7), 
                       labels = label_percent(accuract = 1)) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Eiginfjárhlutfall sveitarfélaga (A-hluti)",
         subtitle = "Eiginfjárhlutfall sýnir hlutfall fjármagns sem er í eigu sveitarfélagsins (restin eru skuldir)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "eiginfjárhlutfall.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Veltufjárhlutfall

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = veltufjarhlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0.06,
                         sveitarfelag == "Kópavogsbær" ~ y - 0.03,
                         sveitarfelag == "Garðabær" ~ y + 0.03,
                         sveitarfelag == "Seltjarnarnesbær" ~ y + 0.03,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y - 0.1,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, veltufjarhlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2023)) +
    scale_y_continuous(breaks = c(range(plot_dat$veltufjarhlutf), 1, 2, 3), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Veltufjármunir sveitarfélaga sem hlutfall af skammtímaskuldum (A-hluti)",
         subtitle = "Veltufjárhlutfall er hlutfall skammtímaskulda deilt upp í eignir sem er hægt að nota í að borga í skammtímaskuldir",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "veltufjarhlutfall.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Rekstrarniðurstaða

Hlutfall af árstekjum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = rekstrarnidurstada_hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y - 0.005,
                         sveitarfelag == "Kópavogsbær" ~ y + 0.005,
                         sveitarfelag == "Garðabær" ~ y - 0.003,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 0.005,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, rekstrarnidurstada_hlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$rekstrarnidurstada_hlutf), 0, -0.05, 0.05, -0.1, 0.1), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Rekstrarniðurstaða sveitarfélaga sem hlutfall af tekjum (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "rekstur_hlutf_tekjur.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Per íbúi

Code
plot_dat <- d |> 
    mutate(rekstur_per_ibui = rekstrarnidurstada / mannfjoldi) |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = rekstur_per_ibui,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y - 3.3e3,
                         sveitarfelag == "Kópavogsbær" ~ y + 4e3,
                         sveitarfelag == "Garðabær" ~ y - 1e3,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 3.3e3,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, rekstur_per_ibui, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$rekstur_per_ibui), -5e4, 5e4, 1e5), 
                       labels = label_number()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Rekstrarniðurstaða sveitarfélaga per íbúi (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "rekstur_per_ibui.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Yfir allt kjörtímabilið (hlutf tekjum)

Code
plot_dat <- d |> 
    filter(ar >= 2018) |> 
    group_by(sveitarfelag) |> 
    summarise(rekstrarnidurstada = sum(rekstrarnidurstada),
              tekjur = sum(tekjur),
              rekstrarnidurstada_hlutf = rekstrarnidurstada / tekjur,
              .groups = "drop") |> 
    mutate(sveitarfelag1 = fct_reorder(sveitarfelag, rekstrarnidurstada_hlutf))


p <- plot_dat |> 
    ggplot(aes(sveitarfelag1, rekstrarnidurstada_hlutf)) +
    geom_hline(yintercept = 0, lty = 2, alpha = 0.5) +
    geom_col(aes(fill = sveitarfelag)) +
    geom_rangeframe() +
    scale_y_continuous(labels = label_percent(),
                       breaks = c(-5.7, -0.7, 0, 2.5, 4.9, 0)/100) +
    scale_fill_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none",
          axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1)) +
    labs(x = NULL,
         y = NULL,
         title = "Samanlögð rekstrarniðurstaða sveitarfélaga sem hlutfall af tekjum yfir kjörtímabilið (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "rekstur_kjortimabil_hlutf_tekjum.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Yfir allt kjörtímabilið (per íbúi)

Code
plot_dat <- d |> 
    filter(ar >= 2018) |> 
    group_by(sveitarfelag) |> 
    summarise(rekstrarnidurstada = sum(rekstrarnidurstada),
              mannfjoldi = mean(mannfjoldi),
              rekstrarnidurstada_hlutf = rekstrarnidurstada / mannfjoldi,
              .groups = "drop") |> 
    mutate(sveitarfelag1 = fct_reorder(sveitarfelag, rekstrarnidurstada_hlutf))


p <- plot_dat |> 
    ggplot(aes(sveitarfelag1, rekstrarnidurstada_hlutf)) +
    geom_hline(yintercept = 0, lty = 2, alpha = 0.5) +
    geom_col(aes(fill = sveitarfelag)) +
    geom_rangeframe() +
    scale_y_continuous(labels = label_number(suffix = " kr"),
                       breaks = c(-157502, -28343, 91633, 106794, 176438)) +
    scale_fill_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none",
          axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1)) +
    labs(x = NULL,
         y = NULL,
         title = "Samanlögð rekstrarniðurstaða sveitarfélaga per íbúi yfir kjörtímabilið (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "rekstur_kjortimabil_per_ibui.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

EBITDA

Hlutfall af árstekjum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = ebitda_hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 0.005,
                         sveitarfelag == "Reykjavíkurborg" ~ y - 0.004,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, ebitda_hlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$ebitda_hlutf), 0, 0.1, 0.2, 0.3), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "EBITDA sveitarfélaga sem hlutfall af tekjum (A-hluti)",
         subtitle = "EBITDA er rekstrarniðurstaða áður en tekið er tillit til vaxtagreiðslna og vaxtatekna, skattgreiðslna og afskrifta",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "ebitda_hlutf_tekjur.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Yfir allt kjörtímabilið (hlutf tekjum)

Code
plot_dat <- d |> 
    filter(ar >= 2018) |> 
    group_by(sveitarfelag) |> 
    summarise(ebitda = sum(ebitda),
              tekjur = sum(tekjur),
              ebitda_hlutf = ebitda / tekjur,
              .groups = "drop") |> 
    mutate(sveitarfelag1 = fct_reorder(sveitarfelag, ebitda_hlutf))


p <- plot_dat |> 
    ggplot(aes(sveitarfelag1, ebitda_hlutf)) +
    geom_hline(yintercept = 0, lty = 2, alpha = 0.5) +
    geom_col(aes(fill = sveitarfelag)) +
    geom_rangeframe() +
    scale_y_continuous(labels = label_percent(),
                       breaks = c(plot_dat$ebitda_hlutf)) +
    scale_fill_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none",
          axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1)) +
    labs(x = NULL,
         y = NULL,
         title = "EBITDA sveitarfélaga sem hlutfall af tekjum yfir kjörtímabilið (A-hluti)",
         subtitle = "EBITDA er rekstrarniðurstaða áður en tekið er tillit til vaxtagreiðslna og vaxtatekna, skattgreiðslna og afskrifta",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "ebitda_kjortimabil_hlutf_tekjum.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Yfir allt kjörtímabilið (per íbúi)

Code
plot_dat <- d |> 
    filter(ar >= 2018) |> 
    group_by(sveitarfelag) |> 
    summarise(ebitda = sum(ebitda),
              mannfjoldi = mean(mannfjoldi),
              ebitda_hlutf = ebitda / mannfjoldi,
              .groups = "drop") |> 
    mutate(sveitarfelag1 = fct_reorder(sveitarfelag, ebitda_hlutf))


p <- plot_dat |> 
    ggplot(aes(sveitarfelag1, ebitda_hlutf)) +
    geom_hline(yintercept = 0, lty = 2, alpha = 0.5) +
    geom_col(aes(fill = sveitarfelag)) +
    geom_rangeframe() +
    scale_y_continuous(labels = label_number(suffix = " kr"),
                       breaks = c(plot_dat$ebitda_hlutf)) +
    scale_fill_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none",
          axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1)) +
    labs(x = NULL,
         y = NULL,
         title = "EBITDA sveitarfélaga per íbúi yfir kjörtímabilið (A-hluti)",
         subtitle = "EBITDA er rekstrarniðurstaða áður en tekið er tillit til vaxtagreiðslna og vaxtatekna, skattgreiðslna og afskrifta",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "ebitda_kjortimabil_per_ibui.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Veltufé frá rekstri

Hreint

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = veltufe,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y - 0.005,
                         sveitarfelag == "Kópavogsbær" ~ y + 0.005,
                         sveitarfelag == "Garðabær" ~ y - 0.003,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y - 2e8,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, veltufe, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$veltufe), 5e9, 1e10), 
                       labels = label_number()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Veltufé frá rekstri (A-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "veltufe_fra_rekstri.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Hlutfall af árstekjum

Code
plot_dat <- d |> 
    mutate(hlutf = veltufe / tekjur) |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y ,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y - 0.005,
                         sveitarfelag == "Reykjavíkurborg" ~ y + 0.005,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, hlutf, col = sveitarfelag)) +
    geom_hline(yintercept = c(0), lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$hlutf), 0.05, 0.1, 0.15), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Veltufé frá rekstri sem hlutfall af árstekjum",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "veltufe_fra_rekstri_hlutf_arstekjur.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

A og B hluti

Code
reykjavik_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Reykjavíkurborg",
    heildarskuldir = 407302323,
    eignir = 790566300,
    tekjur = 202598663,
    gjold = 160759009 + 21052234 + 12899248 + 4168956 - 20521219 + 32254 + 805786,
    afskriftir = 21052234 + 12899248 + 4168956 - 20521219 + 32254 + 805786,
    eigid_fe = 383263977,
    veltufjarmunir = 83847325,
    skammtimaskuldir = 57891584,
    veltufe = 26104032
)

gardabaer_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Garðabær",
    heildarskuldir = 22531983,
    eignir = 42814519,
    tekjur = 20223209,
    gjold = 17738972 + 1145857 + 930335,
    afskriftir = 1145857 + 930335,
    eigid_fe = 20282537,
    veltufjarmunir = 2435879,
    skammtimaskuldir = 4167677,
    veltufe = 2939060
)

hafnarfjordur_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Hafnarfjarðarkaupstaður",
    heildarskuldir = 50119186,
    eignir = 72151091,
    tekjur = 33592931,
    gjold =  31210323 + 1198229 + 1892891,
    afskriftir = 1198229 + 1892891,
    eigid_fe = 22031905,
    veltufjarmunir = 6098831,
    skammtimaskuldir = 6777584,
    veltufe = 766709
)

kopavogur_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Kópavogsbær",
    heildarskuldir = 48779049,
    eignir = 82309044,
    tekjur = 40113710,
    gjold =  35852917 + 1649866 + 2023285,
    afskriftir = 1649866 + 2023285,
    eigid_fe = 33464251,
    veltufjarmunir = 6092186,
    skammtimaskuldir = 9860534,
    veltufe = 2908469
)

mosfellsbaer_2021 <- tibble(
    ar = 2021,
    sveitarfelag = "Mosfellsbær",
    heildarskuldir = 19425592,
    eignir = 26050124,
    tekjur = 14435749,
    gjold =  13489629 + 521831 + 961292 + 24500,
    afskriftir = 521831 + 961292 + 24500,
    eigid_fe = 6624532,
    veltufjarmunir = 2319970,
    skammtimaskuldir = 3085467,
    veltufe = 1131407
)
Code
d <- efnahagur |> 
    filter(hluti == "A_og_B_hluti") |> 
    select(-tegund3, -hluti) |> 
    pivot_wider(names_from = tegund2, values_from = total) |> 
    inner_join(
        rekstur |> 
            filter(hluti == "A_og_B_hluti") |> 
            select(-hluti) |> 
            pivot_wider(names_from = tegund2, values_from = total),
        by = c("ar", "sveitarfelag")
    ) |> 
    inner_join(
        sjodsstreymi |> 
            filter(hluti == "A_og_B_hluti",
                   tegund2 == "Veltufé frá rekstri") |> 
            select(-hluti) |> 
            pivot_wider(names_from = tegund2, values_from = total),
        by = c("ar", "sveitarfelag")
    ) |> 
    rowwise() |> 
    mutate(heildarskuldir = sum(c_across(cols = c("Skuldbindingar", "Langtímaskuldir", "Skammtímaskuldir"))),
           eignir = sum(c_across(cols = c("Varanlegir rekstrarfjármunir", "Áhættufjármunir og langtímakröfur", "Veltufjármunir")))) |> 
    ungroup() |> 
    select(ar, sveitarfelag, heildarskuldir, eignir, tekjur = "Tekjur", gjold = "Gjöld", afskriftir = "Afskriftir",
           eigid_fe = "Eigið fé", veltufjarmunir = "Veltufjármunir", skammtimaskuldir = "Skammtímaskuldir", veltufe = "Veltufé frá rekstri") |> 
    bind_rows(
        reykjavik_2021,
        gardabaer_2021,
        kopavogur_2021,
        hafnarfjordur_2021,
        mosfellsbaer_2021
    ) |> 
    mutate_at(vars(heildarskuldir:veltufe), ~ .x * 1000) |> 
    mutate(nettoskuldir = heildarskuldir - veltufjarmunir,
           skuldahlutf = heildarskuldir / tekjur,
           nettoskuldahlutf = nettoskuldir / tekjur,
           veltufjarhlutf = veltufjarmunir / skammtimaskuldir,
           eignahlutf = eignir / heildarskuldir,
           rekstrarnidurstada = tekjur - gjold,
           rekstrarnidurstada_hlutf = rekstrarnidurstada / tekjur,
           ebitda = rekstrarnidurstada + afskriftir,
           ebitda_hlutf = ebitda / tekjur,
           eiginfjarhlutfall = eigid_fe / eignir) |> 
    inner_join(mannfjoldi,
               by = c("ar", "sveitarfelag"))

d |> write_csv("arsreikningagogn_aogb.csv")
Code
plot_year <- 2002

Skuldir

Skuldir sem hlutfall af árstekjum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldahlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0,
                         sveitarfelag == "Kópavogsbær" ~ y + 0.015,
                         sveitarfelag == "Garðabær" ~ y - 0.035,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, skuldahlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2024.5)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldahlutf), 0.75, 1, 1.25, 1.5, 2, 2.5), 
                       labels = label_percent(accuract = 1)) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Skuldir sveitafélaga sem hlutfall af árstekjum (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldir_hlutfall_arstekjum_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Skuldir á íbúa

Code
plot_dat <- d |> 
    mutate(hlutf = heildarskuldir / mannfjoldi) |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 1e4,
                         sveitarfelag == "Kópavogsbær" ~ y + 5e3,
                         sveitarfelag == "Garðabær" ~ y - 3e4,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 1e5,
                         sveitarfelag == "Reykjavíkurborg" ~ y - 3.5e4,
                         sveitarfelag == "Seltjarnarnesbær" ~ y + 3.5e4,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, hlutf, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2024.5)) +
    scale_y_log10(breaks = c(range(plot_dat$hlutf), 3e5, 5e5, 1e6, 2e6), 
                       labels = label_number(accuracy = 1, suffix = " kr.")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Skuldir sveitafélaga á hvern íbúa (A og B-hluti)",
         subtitle = "Mynd er á lograkvarða svo fjarlægð milli 1, 10, 100 og 1000 á y-ás er sá sami",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldir_a_ibua_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Heildarskuldir

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = heildarskuldir,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y - 1e9,
                         sveitarfelag == "Kópavogsbær" ~ y - 4e9,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 6e9,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, heildarskuldir, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2024.5)) +
    scale_y_log10(breaks = c(range(plot_dat$heildarskuldir), 1e10, 3e10, 1e11, 3e11), 
                       labels = label_number(accuracy = 1, suffix = " kr.")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Heildarskuldir sveitarfélaga (A og B-hluti)",
         subtitle = "Mynd er á lograkvarða svo fjarlægð milli 1, 10, 100 og 1000 á y-ás er sá sami",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")


p

Code
ggsave(plot = p,
       filename = "heildarskuldir_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Aukning skulda

Frá 2018

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_),
           skuldaaukning = heildarskuldir / heildarskuldir[ar == 2018]) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldaaukning,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0.01,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y - 0.01,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= 2018)

p <- plot_dat |> 
    ggplot(aes(ar, skuldaaukning, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.02, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = 2018:2021, 
                       limits = c(NA, 2021.55)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldaaukning), 1.25, 1.5), 
                       labels = label_number(suffix = "x")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfallsleg aukning heildarskulda sveitarfélaga síðan 2018 (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldaaukning_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Frá 2010

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_),
           skuldaaukning = heildarskuldir / heildarskuldir[ar == 2010]) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldaaukning,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y ,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Reykjavíkurborg" ~ y - 0.04,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 0.05,
                         TRUE ~ y)) |> 
    filter(ar >= 2010)

p <- plot_dat |> 
    ggplot(aes(ar, skuldaaukning, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = 2010:2021, 
                       limits = c(NA, 2023.2)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldaaukning), 1, 1.25, 1.5, 2, 2.5, 3), 
                       labels = label_number(suffix = "x")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfallsleg aukning heildarskulda sveitarfélaga síðan 2010 (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "skuldaaukning_2010_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Breyting frá 2010

Hlutfall af tekjum

Code
plot_dat <- d |> 
    filter(ar %in% c(2010, 2021) | (sveitarfelag == "Seltjarnarnesbær" & ar == 2020)) |> 
    group_by(sveitarfelag) |> 
    mutate(ar = ifelse(ar == max(ar), "eftir", "fyrir")) |> 
    ungroup() |> 
    mutate(skuldahlutf = heildarskuldir / tekjur) |> 
    select(ar, sveitarfelag, skuldahlutf) |> 
    pivot_wider(names_from = ar, values_from = skuldahlutf) |> 
    mutate(munur = eftir - fyrir,
           sveitarfelag1 = fct_reorder(sveitarfelag, munur))

p <- plot_dat |> 
    ggplot(aes(sveitarfelag1, munur)) +
    geom_hline(yintercept = 0, lty = 2, alpha = 0.5) +
    geom_col(aes(fill = sveitarfelag)) +
    geom_rangeframe() +
    scale_y_continuous(labels = label_percent(),
                       breaks = c(-128, -122, -44.5, -1.7, 31.2)/100) +
    scale_fill_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none",
          axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1)) +
    labs(x = NULL,
         y = NULL,
         title = "Breyting í heildarskuldum sem hlutfall af tekjum frá 2010 - 2021 (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "heildarskuldir_kjortimabil_hlutf_tekjur_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Á íbúa

Code
plot_dat <- d |> 
    filter(ar %in% c(2010, 2021) | (sveitarfelag == "Seltjarnarnesbær" & ar == 2020)) |> 
    group_by(sveitarfelag) |> 
    mutate(ar = ifelse(ar == max(ar), "eftir", "fyrir")) |> 
    ungroup() |> 
    mutate(skuldahlutf = heildarskuldir / mannfjoldi) |> 
    select(ar, sveitarfelag, skuldahlutf) |> 
    pivot_wider(names_from = ar, values_from = skuldahlutf) |> 
    mutate(munur = eftir - fyrir,
           sveitarfelag1 = fct_reorder(sveitarfelag, munur))

p <- plot_dat |> 
    ggplot(aes(sveitarfelag1, munur)) +
    geom_hline(yintercept = 0, lty = 2, alpha = 0.5) +
    geom_col(aes(fill = sveitarfelag)) +
    geom_rangeframe() +
    scale_y_continuous(labels = label_number(suffix = " kr"),
                       breaks = c(plot_dat$munur)) +
    scale_fill_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none",
          axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1)) +
    labs(x = NULL,
         y = NULL,
         title = "Breyting í heildarskuldum per íbúi frá 2010 - 2021 (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "heildarskuldir_kjortimabil_per_ibui_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Nettó skuldir

Nettó skuldir sem hlutfall af árstekjum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = nettoskuldahlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0.04,
                         sveitarfelag == "Kópavogsbær" ~ y + 0.04,
                         sveitarfelag == "Garðabær" ~ y - 0.05,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 0.04,
                         sveitarfelag == "Seltjarnarnes" ~ y + 0.07,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, nettoskuldahlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2024.5)) +
    scale_y_continuous(breaks = c(range(plot_dat$nettoskuldahlutf), 0.75, 1, 1.25, 1.5, 2, 2.5), 
                       labels = label_percent(accuract = 1)) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Nettóskuldir sveitafélaga sem hlutfall af árstekjum (A og B-hluti)",
         subtitle = "Nettóskuldir eru heildarskuldir að frádregnum peningalegum eignum án eigin fyrirtækja",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "nettoskuldir_hlutfall_arstekjum_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Nettó skuldir á íbúa

Code
plot_dat <- d |> 
    mutate(hlutf = nettoskuldir / mannfjoldi) |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 1e4,
                         sveitarfelag == "Kópavogsbær" ~ y + 5e3,
                         sveitarfelag == "Garðabær" ~ y - 1e4,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 2e4,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, hlutf, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2024.5)) +
    scale_y_continuous(breaks = c(range(plot_dat$hlutf), 3e5, 5e5, 1e6, 1.5e6, 2e6), 
                       labels = label_number(accuracy = 1, suffix = " kr.")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Nettóskuldir sveitafélaga á hvern íbúa (A og B-hluti)",
         subtitle = "Nettóskuldir eru heildarskuldir að frádregnum peningalegum eignum án eigin fyrirtækja",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "nettoskuldir_a_ibua_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Aukning nettóskulda

Frá 2018
Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_),
           skuldaaukning = nettoskuldir / nettoskuldir[ar == 2018]) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldaaukning,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0.01,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y - 0.01,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= 2018)

p <- plot_dat |> 
    ggplot(aes(ar, skuldaaukning, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2, alpha = 0.6) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.02, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = 2018:2021, 
                       limits = c(NA, 2021.55)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldaaukning), 1.25, 1.5), 
                       labels = label_number(suffix = "x")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfallsleg aukning nettóskulda sveitarfélaga síðan 2018 (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "nettoskuldaaukning_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")
Frá 2010
Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_),
           skuldaaukning = nettoskuldir / nettoskuldir[ar == 2010]) |> 
    ungroup() |> 
    mutate(x = ar,
           y = skuldaaukning,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y ,
                         sveitarfelag == "Kópavogsbær" ~ y - 0.07,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Reykjavíkurborg" ~ y - 0.02,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 0.05,
                         TRUE ~ y)) |> 
    filter(ar >= 2010)

p <- plot_dat |> 
    ggplot(aes(ar, skuldaaukning, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2, alpha = 0.6) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = 2010:2021, 
                       limits = c(NA, 2023.2)) +
    scale_y_continuous(breaks = c(range(plot_dat$skuldaaukning), 1, 1.5, 3), 
                       labels = label_number(suffix = "x")) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfallsleg aukning nettóskulda sveitarfélaga síðan 2010 (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "nettoskuldaaukning_2010_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")
Code
plot_year <- 2014

Eiginfjárhlutfall

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = eiginfjarhlutfall,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y - 0.003,
                         sveitarfelag == "Reykjavíkurborg" ~ y + 0.003,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, eiginfjarhlutfall, col = sveitarfelag)) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.3)) +
    scale_y_continuous(breaks = c(range(plot_dat$eiginfjarhlutfall), 0.2, 0.3, 0.4, 0.5, 0.6, 0.7), 
                       labels = label_percent(accuract = 1)) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Eiginfjárhlutfall sveitarfélaga (A og B-hluti)",
         subtitle = "Eiginfjárhlutfall sýnir hlutfall fjármagns sem er í eigu sveitarfélagsins (restin eru skuldir)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "eiginfjárhlutfall_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Veltufjárhlutfall

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = veltufjarhlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0.05,
                         sveitarfelag == "Kópavogsbær" ~ y + 0.01,
                         sveitarfelag == "Garðabær" ~ y - 0.04,
                         sveitarfelag == "Seltjarnarnesbær" ~ y + 0.09,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y ,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, veltufjarhlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 1, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.3)) +
    scale_y_continuous(breaks = c(range(plot_dat$veltufjarhlutf), 1, 2, 3), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    coord_cartesian(ylim = c(0.23, 3)) +
    labs(x = NULL,
         y = NULL,
         title = "Veltufjárhlutfall sveitarfélaga (A og B-hluti)",
         subtitle = "Veltufjárhlutfall er hlutfall skammtímaskulda deilt upp í veltufjármuni (eignir sem er hægt að nota í að borga skammtímaskuldir)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "veltufjarhlutfall_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Rekstrarniðurstaða

Hlutfall af árstekjum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = rekstrarnidurstada_hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y - 0.005,
                         sveitarfelag == "Kópavogsbær" ~ y - 0.003,
                         sveitarfelag == "Garðabær" ~ y + 0.006,
                         sveitarfelag == "Seltjarnarnesbær" ~ y - 0.001,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 0.008,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, rekstrarnidurstada_hlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$rekstrarnidurstada_hlutf), 0, -0.05, 0.05, -0.1, 0.1, 0.2), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Rekstrarniðurstaða sveitarfélaga sem hlutfall af tekjum (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "rekstur_hlutf_tekjur_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Per íbúi

Code
plot_dat <- d |> 
    mutate(rekstur_per_ibui = rekstrarnidurstada / mannfjoldi) |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = rekstur_per_ibui,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Seltjarnarnesbær" ~ y - 5e3,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 5e3,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, rekstur_per_ibui, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$rekstur_per_ibui), -5e4, 5e4, 1e5), 
                       labels = label_number()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Rekstrarniðurstaða sveitarfélaga per íbúi (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "rekstur_per_ibui_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Yfir allt kjörtímabilið (hlutf tekjum)

Code
plot_dat <- d |> 
    filter(ar >= 2018) |> 
    group_by(sveitarfelag) |> 
    summarise(rekstrarnidurstada = sum(rekstrarnidurstada),
              tekjur = sum(tekjur),
              rekstrarnidurstada_hlutf = rekstrarnidurstada / tekjur,
              .groups = "drop") |> 
    mutate(sveitarfelag1 = fct_reorder(sveitarfelag, rekstrarnidurstada_hlutf))


p <- plot_dat |> 
    ggplot(aes(sveitarfelag1, rekstrarnidurstada_hlutf)) +
    geom_hline(yintercept = 0, lty = 2, alpha = 0.5) +
    geom_col(aes(fill = sveitarfelag)) +
    geom_rangeframe() +
    scale_y_continuous(labels = label_percent(),
                       breaks = c(plot_dat$rekstrarnidurstada_hlutf, 8.36/100, 0)) +
    scale_fill_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none",
          axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1)) +
    labs(x = NULL,
         y = NULL,
         title = "Samanlögð rekstrarniðurstaða sveitarfélaga sem hlutfall af tekjum yfir kjörtímabilið (A og B-hluti)",
         subtitle = "Rekstrarniðurstaða Reykjavíkurborgar væri +8,36% sé gildishækkun fasteigna 2021 ekki tekin með",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "rekstur_kjortimabil_hlutf_tekjum_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Yfir allt kjörtímabilið (per íbúi)

Code
plot_dat <- d |> 
    filter(ar >= 2018) |> 
    group_by(sveitarfelag) |> 
    summarise(rekstrarnidurstada = sum(rekstrarnidurstada),
              mannfjoldi = mean(mannfjoldi),
              rekstrarnidurstada_hlutf = rekstrarnidurstada / mannfjoldi,
              .groups = "drop") |> 
    mutate(sveitarfelag1 = fct_reorder(sveitarfelag, rekstrarnidurstada_hlutf))


p <- plot_dat |> 
    ggplot(aes(sveitarfelag1, rekstrarnidurstada_hlutf)) +
    geom_hline(yintercept = 0, lty = 2, alpha = 0.5) +
    geom_col(aes(fill = sveitarfelag)) +
    geom_rangeframe() +
    scale_y_continuous(labels = label_number(suffix = " kr"),
                       breaks = c(-25845, 168198, 220721, 247324, 488874, 642949, 0)) +
    scale_fill_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none",
          axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1)) +
    labs(x = NULL,
         y = NULL,
         title = "Samanlögð rekstrarniðurstaða sveitarfélaga per íbúi yfir kjörtímabilið (A og B-hluti)",
         subtitle = "Rekstrarniðurstaða Reykjavíkurborgar væri +488.874 kr sé gildishækkun fasteigna 2021 ekki tekin með",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "rekstur_kjortimabil_per_ibui_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

EBITDA

Hlutfall af árstekjum

Code
plot_dat <- d |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = ebitda_hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y - 0.005,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 0.005,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, ebitda_hlutf, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$ebitda_hlutf), 0,  -0.1, 0.1, 0.2, 0.3), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "EBITDA sveitarfélaga sem hlutfall af tekjum (A og B-hluti)",
         subtitle = "EBITDA er rekstrarniðurstaða áður en tekið er tillit til vaxtagreiðslna og vaxtatekna, skattgreiðslna og afskrifta",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "ebitda_hlutf_tekjur_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Per íbúi

Code
plot_dat <- d |> 
    mutate(ebitda_per_ibui = ebitda / mannfjoldi) |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = ebitda_per_ibui,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y - 3.3e3,
                         sveitarfelag == "Kópavogsbær" ~ y + 4e3,
                         sveitarfelag == "Garðabær" ~ y - 1e3,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y + 3.3e3,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, ebitda_per_ibui, col = sveitarfelag)) +
    geom_hline(yintercept = 0, lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$ebitda_per_ibui), 5e4, 1e5, 2e5, 3e5), 
                       labels = label_number()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "EBITDA sveitarfélaga per íbúi (A-hluti)",
         subtitle = "EBITDA er rekstrarniðurstaða áður en tekið er tillit til vaxtagreiðslna og vaxtatekna, skattgreiðslna og afskrifta",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "ebitda_per_ibui_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")

Veltufé frá rekstri

Hlutfall af árstekjum

Code
plot_dat <- d |> 
    mutate(hlutf = veltufe / tekjur) |> 
    group_by(sveitarfelag) |> 
    mutate(label = ifelse(ar == max(ar), sveitarfelag, NA_character_)) |> 
    ungroup() |> 
    mutate(x = ar,
           y = hlutf,
           y = case_when(sveitarfelag == "Mosfellsbær" ~ y + 0.001,
                         sveitarfelag == "Kópavogsbær" ~ y,
                         sveitarfelag == "Garðabær" ~ y ,
                         sveitarfelag == "Seltjarnarnesbær" ~ y,
                         sveitarfelag == "Hafnarfjarðarkaupstaður" ~ y,
                         sveitarfelag == "Reykjavíkurborg" ~ y,
                         TRUE ~ y)) |> 
    filter(ar >= plot_year)

p <- plot_dat |> 
    ggplot(aes(ar, hlutf, col = sveitarfelag)) +
    geom_hline(yintercept = c(0), lty = 2) +
    geom_line() +
    geom_point() +
    geom_text(data = plot_dat |> group_by(sveitarfelag) |> filter(ar == max(ar)),
              aes(label = label, x = x, y = y), nudge_x = 0.1, hjust = 0, size = 4) +
    geom_rangeframe(col = "black") +
    scale_x_continuous(breaks = plot_year:2021, 
                       limits = c(plot_year, 2022.4)) +
    scale_y_continuous(breaks = c(range(plot_dat$hlutf), -0.05, 0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3), 
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    theme_tufte() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Veltufé frá rekstri sem hlutfall af árstekjum (A og B-hluti)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/arsreikningar_sveitarfelaga")

p

Code
ggsave(plot = p,
       filename = "veltufe_fra_rekstri_hlutf_arstekjur_aogb.png",
       width = 8, height = 0.5 * 8, scale = 1.3, bg = "white")